

//评论模块的路由
var express = require('express');
const { aesDecrypt, checkUsername } = require('../utils');
const { UserModel, MvModel, Comment } = require('../utils/model');
var router = express.Router();

router.post('/insert', (req, res) => {
    var body = req.body;
    var query = req.query;
    checkUsername(req, res, (username) => {
        MvModel.findOne({ id: query.cid })
            .then(movie => {
                body.time = new Date();
                body.username = username;
                body.movie = movie;
                body.cid = query.cid;
                Comment.insertMany(body).then(result => {
                    res.redirect('/comment/clist?cid='+query.cid);
                    // res.send(result)
                })
            })
    })
})







//评论列表
router.get('/clist',(req,res)=>{
    var query = req.query;
    var page = query.page  ?  query.page * 1 : 1;
    var pageSize = query.pageSize * 1 || 10; 
    var total  = 0;
    var totalPage = 0; 


    checkUsername(req,res,username=>{
        Comment.find({},{})
        .then(data=>{
            total = data.length;
            totalPage = Math.ceil(total/pageSize);
            page = page < 1 ? 1 : page ;  
            page = page > totalPage ? totalPage :page 

            Comment.find({},{})
            .skip((page-1)*pageSize)
            .limit(pageSize)
            .sort({
                _id:-1
            })
            .then(result=>{
                res.render("clist",{
                    username,
                    result,
                    page,
                    total,
                    totalPage,
                    pageSize
                })
            })
        })
    })

    // checkUsername(req,res,username=>{
    //     Comment.find({},{})
    //     .sort({
    //         _id:-1  // 降序
    //     })
    //     .then(result=>{
    //         res.render("clist",{
    //             username,
    //             // result:[]
    //             result

    //         })
    //     })
    // })
})


// 查询当前用户的所有评论  
router.get("/mycomment",(req,res)=>{
    checkUsername(req,res,username=>{
        var {myname} =  req.query;
        Comment.find({
            username:myname
        }).sort({_id:-1})
        .then(result=>{
            res.render("mycomment",{
                result,
                myname,
                username
            })
        })
    })
})

// 查询当前电影的所有评论  
router.get("/moviecomment",(req,res)=>{
    checkUsername(req,res,username=>{
        var {cid} =  req.query;
        MvModel.findOne({
            id:cid
        }).then(movie=>{
            Comment.find({
                cid
            }).sort({_id:-1})
            .then(result=>{
                console.log(movie);
                 res.render("mvdetail",{
                    result,
                    movie,
                    username
                })
            })
        })
       
    })
})


// 查询这条 评论  
router.get("/onecomment",(req,res)=>{
    checkUsername(req,res,username=>{
        var {_id} =  req.query;
        Comment.findOne({
            _id
        })
        .then(result=>{
            res.render("detailone",{
                result,
                username
            })
        })
    })
})



// 删除 这条评论  
router.get("/removeone",(req,res)=>{
    checkUsername(req,res,username=>{
        var {_id} =  req.query;
        Comment.remove({
            _id
        })
        .then(result=>{
           res.json({
               code:200,
               result,
               msg:'删除成功'
           })
        })
    })
})

// 修改  这条评论  
router.post("/updateone",(req,res)=>{
    checkUsername(req,res,username=>{
        var {_id,title,content} =  req.body;
        Comment.updateMany({
            _id
        },{
            $set:{
                title,
                content,
                time:new Date()
            }
        })
        .then(result=>{
           res.json({
               code:200,
               result,
               msg:'修改成功'
           })
        })
    })
})


// 查询当前用户的所有评论  
router.get("/mycomment",(req,res)=>{
    checkUsername(req,res,username=>{
        var {myname} =  req.query;
        Comment.find({
            username:myname
        }).sort({_id:-1})
        .then(result=>{
            res.render("mycomment",{
                result,
                myname,
                username
            })
        })
    })
})

// 查询当前电影的所有评论  
router.get("/moviecomment",(req,res)=>{
    checkUsername(req,res,username=>{
        var {cid} =  req.query;
        MvModel.findOne({
            id:cid
        }).then(movie=>{
            Comment.find({
                cid
            }).sort({_id:-1})
            .then(result=>{
                res.render("mvdetail",{
                    result,
                    movie,
                    username
                })
            })
        })
       
    })
})


// 查询这条 评论  
router.get("/onecomment",(req,res)=>{
    checkUsername(req,res,username=>{
        var {_id} =  req.query;
        Comment.findOne({
            _id
        })
        .then(result=>{
            res.render("detailone",{
                result,
                username
            })
        })
    })
})







var multiparty = require("multiparty")
var fs = require("fs")
// 上传图片  
router.post("/uploadImg",(req,res)=>{
    const form = new multiparty.Form();  // 自定义表单对象  
    form.encoding = "utf-8"
    form.uploadDir = "./uploadtemp"  // 临时文件中转站
    form.maxFilesSize = 8*1024*1024;  // 8M 
    form.parse(req,function(err,fields,files){
        if(err) {
            console.log(err)
            res.send("<script>alert('图片过大,请重新上传');location.reload()'</script>")
        }
        var uploadUrl = "/images/upload/",
        file  = files['filedata'], // 图片信息
        originalFilename = file[0].originalFilename, // 文件名  2.jpg 
        tempath = file[0].path;
        var timestamp = new Date().getTime(); // 时间戳  为了避免图片名字冲突 
        uploadUrl += timestamp+originalFilename;  // 1.jpg ==> 15112341231.jpg
        var newPath = "./public"+uploadUrl;  // 最后路径 
        var fileRead = fs.createReadStream(tempath);  // 可读流 
        var fileWrite = fs.createWriteStream(newPath);  // 可写流  
        fileRead.pipe(fileWrite);
        fileWrite.on("close",()=>{
            fs.unlinkSync(tempath);  // 上传成功把中转站的文件删除 
            res.json({
                err:"",
                msg:uploadUrl
            })
        })
    })
})



module.exports = router;

